package day0802;

import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;

//己方Hero飞机类：
public class HeroPlane extends FlyingObject {

    int heroImgIndex=1;
    public void move(){//此方法是让hero飞机两张图片切换的方法
        img=images[heroImgIndex%images.length];
        //将hero飞机采用的图片img，赋值为 images[1%2]。  再次调用此move()方法时就会赋值为images[2%2]
        //下次再调用此move()方法时就会赋值为images[3%2]
        heroImgIndex++;
    }

    int bulletCounts=1;
    public ArrayList<Bullet> shoot(){
        ArrayList<Bullet> bs=new ArrayList<>();
        if(bulletCounts==1){
            Bullet b=new Bullet();
            //子弹的x坐标等于：飞机的x坐标+飞机的宽度的一半
            //子弹图片水平方向，在飞机图片的中间
            b.x=x+imgWidth/2-b.imgWidth/2;
            //子弹的y坐标等于：飞机的y坐标
            b.y=y;
            bs.add(b);
        }else if(bulletCounts==2){
            Bullet b1=new Bullet();
            //子弹的x坐标等于：飞机的x坐标+飞机的宽度的一半
            //第一发子弹图片水平方向，在飞机图片的1/4处
            b1.x=x+imgWidth/4-b1.imgWidth/2;
            //第一发子弹的y坐标等于：飞机的y坐标
            b1.y=y;
            bs.add(b1);
            Bullet b2=new Bullet();
            //子弹的x坐标等于：飞机的x坐标+飞机的宽度的3/3
            //( 4/4 - 1/4 就是3/4)
            //第二发子弹图片水平方向，在飞机图片的3/4处
            b2.x=x+(imgWidth*4/4-imgWidth/4)-b2.imgWidth/2;;
            //第二发子弹的y坐标等于：飞机的y坐标
            b2.y=y;
            bs.add(b2);
        }
        return bs;
    }


    Image[] images=new Image[2];//用来存储hero飞机的两张图hero0.png和hero1.png
    HeroPlane(){
        //给images数组中存入两个hero图片
        ImageIcon icon0Img=new ImageIcon("images/hero0.png");
        images[0]=icon0Img.getImage();
        ImageIcon icon1Img=new ImageIcon("images/hero1.png");
        images[1]=icon1Img.getImage();
        speed=3;
        imgWidth=icon0Img.getIconWidth();
        imgHeight=icon0Img.getIconHeight();
        x=170;
        y=500;
    }

    public void moveTo(int x, int y) {
        this.x=x-imgWidth/2;
        this.y=y-imgHeight/2;
    }

}


